Sequences
of Images
You can
display a sequence of bitmaps with the same dimensions and formats by using the
DrawDibDraw
function with the DrawDibBegin function. DrawDibBegin improves the efficiency
of DrawDibDraw by preparing the DrawDib DC for drawing.
Note If your
application does not use DrawDibBegin, DrawDibDraw implicitly
executes it prior to drawing. If your application uses DrawDibBegin
prior to DrawDibDraw, DrawDibDraw does not have to process the
function and wait for it to complete.
The DrawDibBegin function provides DrawDibDraw with the DrawDib DC, the DC
handle, the address of the BITMAPINFOHEADER structure, and the source and destination
rectangle dimensions. When you display a sequence of bitmaps, DrawDibDraw
checks the values of these items for each image in the sequence. If DrawDibDraw
detects changes to any of these items, it implicitly calls DrawDibBegin
again to adjust the DrawDib DC settings.
After using DrawDibBegin,
you can draw the image sequence by using DrawDibDraw and specifying one
or more flags as appropriate. Specify the DDF_SAME_HDC flag as long as the DC
handle has not changed. Specify the DDF_SAME_DRAW flag when the following parameters
for DrawDibDraw have not changed: the address of the BITMAPINFOHEADER
structure and the source and destination rectangle dimensions.
You can
update the flags set with DrawDibBegin by using the DrawDibEnd function followed by
another call to DrawDibBegin. Then use DrawDibEnd to clear the
DrawDib DC of its current flags and settings. The subsequent call to DrawDibBegin
reinitializes the DrawDib DC with the appropriate flags and settings.
Alternatively, you can update the flags for a DrawDib DC by using DrawDibBegin
without DrawDibEnd. To do this, you must change at least one of the
following settings concurrently with the flags: the address of the BITMAPINFOHEADER
structure, or the source or destination rectangle dimensions.
You can
increase the efficiency of DrawDibDraw for data-streaming operations
that use compressed images, such as playing a video clip, by using the DrawDibStart and DrawDibStop functions. The DrawDibStart
function prepares the DrawDib DC to receive a stream of images by sending a
message to the video compression manager (VCM). When streaming has ended, DrawDibStop
sends a message to VCM indicating that it can release resources it allocated
for the data-streaming operation. For more information about VCM, see Video
Compression Manager.
Note You must
specify the width and height of the source and destination rectangles in your
application. However, you do not need to specify the origins of the rectangles.
Your application can redefine the origins in DrawDibDraw to use different portions
of the image or to update different portions of the display.